package com


import android.app.Application
import android.util.Log
import androidx.multidex.MultiDexApplication
import com.android.lipy.elog.ELog
import com.android.lipy.elog.ELogConfigs
import com.di.appModule
import com.hd123.stand.helper.network.NetMgr
import com.helper.network.DoctorsNetProvider
import com.sh.doctors.cloud.BuildConfig
import org.koin.android.ext.android.startKoin
import org.koin.android.logger.AndroidLogger
import java.text.SimpleDateFormat
import java.util.*

class App : MultiDexApplication() {
    companion object {
        lateinit var instance: Application
        fun instance() = instance
    }

    override fun onCreate() {
        super.onCreate()

        instance = this


        NetMgr.registerProvider(DoctorsNetProvider())

        startKoin(this, appModule, logger = AndroidLogger(showDebug = BuildConfig.DEBUG))

        ELog.init(configs)
    }

    //日志配置
    val configs = ELogConfigs.Builder()
        .setLogcatTag("MVVM_TRAINING")                          //设置logcatTag，如果设置了该项，则不使用setTag配置的tag。
        .setLogcatShowBorder(false)                             //设置logcat是否显示边框和分割线。默认显示
        .setDiskDebugPriority(Log.WARN)                         //设置logcat日志打印最低级别，配置为ELogConfigs.DEBUG_STOP则不打印日志。默认VERBOSE级别
        .setLogcatMethodOffset(2)                               //设置logcat方法偏移量。默认0
        .setLogcatShowThreadInfo(false)                         //设置logcat是否显示进程信息。默认显示
        .setDiskShowThreadInfo(false)                           //设置是否显示线程和包名。默认显示
        .setDiskFileSizeKB(1024)                                  //设置磁盘单个日志文件大小，单位KB。默认500KB
        .build()
}